// function identity() {
//   return this.name.toUpperCase()
// }
// function speak() {
//   var gretting = 'Hello,I am' + identity.call(this)
//   console.log(gretting);
// }
// var me = {
//   name: 'Tom'
// }
// speak.call(me)


// function identify(context) {
//   return context.name.toUpperCase()
// }
// function speak(context) {
//   var gretting = 'Hello, I am ' + identify(context)
//   console.log(gretting);
// }
// var me = {
//   name: 'Tom'
// }

// speak(me)


// // 不使用this的情况，需要显式传递上下文参数
// function Person(name, age) {
//   this.name = name;
//   this.age = age;

//   // 为了在方法中访问name和age，我们需要显式传递一个上下文参数
//   this.introduce = function(context) {
//     console.log('我叫' + context.name + '，今年' + context.age + '岁。');
//   };
// }

// var person = new Person('王五', 30);
// person.introduce(person); // 输出：我叫王五，今年30岁。

// // 使用this的情况，不需要显式传递上下文参数
// function PersonWithThis(name, age) {
//   this.name = name;
//   this.age = age;

//   // 使用this关键字，方法可以直接访问对象的属性
//   this.introduce = function() {
//     console.log('我叫' + this.name + '，今年' + this.age + '岁。');
//   };
// }

// var personWithThis = new PersonWithThis('赵六', 25);
// personWithThis.introduce(); // 输出：我叫赵六，今年25岁。



console.log(this.a);
